// pages/test/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    msg:'Hello MiniProgram',
    human:[
      {name:'三丰',score:100,skills:['闭关','太极']},
      {name:'三丰1',score:101,skills:['闭关1']},
      {name:'三丰2',score:102,skills:['闭关2','太极2']},
    ],
    isShow:false,
    isActive:true,
    actIdx:0, //被选中的菜单序号
    cityName:'成都',
    categoryList:[]
  },
  //事件函数
  handleShow(){
    // this.isShow = !this.isShow  //非响应式更新，UI无法联动
    this.setData({ //触发响应式更新，自动触发UI联动
      isShow:!this.data.isShow
    })
    console.log(this.data.isShow); //提取data中的数据
  },
  handleActive(){
    let isActive = !this.data.isActive
    this.setData({isActive})
  },
  handleTab(ev){
    //ev 触发本次事件所产生的事件对象
    // console.log(ev);
    // 方法1：
    // let idx = ev.currentTarget.dataset.idx
    // let num = ev.currentTarget.dataset.num

    // 方法2：解构赋值
    let {idx,num} = ev.currentTarget.dataset
    console.log(idx,num);
    this.setData({
      actIdx:idx
    })
  },
  handleNewPage(){
    // 每次调用会向页面栈中推入一个新页面
    // [A页面,B页面,...]
    wx.navigateTo({
      url: '/pages/detail/index',
    })
  },
  handleMine(){
    //专用于跳转底部菜单对应的主页面
    wx.switchTab({
      url: '/pages/mine/index',
    })
  },
  handleRedirect(){
    // 会替换页面栈中原来的页面
    // [B页面]
    wx.redirectTo({
      url: '/pages/detail/index',
    })
  },
  handleReLaunch(){
    wx.reLaunch({
      url: '/pages/test/index',
    })
  },
  handleParams(){
    // 方法1：
    // wx.navigateTo({
    //   url: '/pages/detail/index?id=123&name=三丰&age=100'
    // })

    // 方法2：
    let product = {
      name:'商品名称',
      price:1999,
      sub_title:'商品介绍'
    }
    let param = ''
    for(let attr in product){
      param += `${attr}=${product[attr]}&`
    }
    wx.navigateTo({
      url: '/pages/detail/index?'+param
    })
    
  },
  handleCity(){
    wx.navigateTo({
      url: '/pages/city/index',
      events:{
        //方法1：内部this指向有问题
        // changeCity(data){
        //   console.log('接收city页面逆向参数',data);
        //   this.setData({cityName:data.name})
        // },
        //方法2：箭头函数修正this指向
        changeCity:(data)=>{
          console.log('接收city页面逆向参数',data);
          this.setData({cityName:data.name})
        },
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 方法1:直接使用 wx.request
    wx.request({
      url: 'http://localhost:3000/category',
      header:{},
      success:(res)=>{
        console.log(res);
        this.setData({
          categoryList:res.data
        })
      }
    })

    // 方法2：自定义封装wx.request
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})